在实例之间传输登录名和密码 |
您所在的位置:网站首页 › sql sp_help › 在实例之间传输登录名和密码 |
在 SQL Server 实例之间传输登录名和密码
项目
10/17/2023
本文介绍如何在 Windows 上运行的 SQL Server 的不同实例之间传输登录名和密码。 原始产品版本:SQL Server 原始 KB 编号: 918992,246133 简介本文介绍如何在 Microsoft SQL Server 的不同实例之间传输登录名和密码。 注意 实例可能位于同一服务器或不同服务器上,其版本可能不同。 更多信息在本文中,服务器 A 和服务器 B 是不同的服务器。 将数据库从服务器 A 上的 SQL Server 实例移动到服务器 B 上的 SQL Server 实例后,用户可能无法登录到服务器 B 上的数据库。此外,用户可能会收到以下错误消息: 用户“MyUser”登录失败。 (Microsoft SQL Server,错误:18456) 出现此问题的原因是,未将登录名和密码从服务器 A 上的 SQL Server 实例传输到服务器 B 上的 SQL Server 实例。 注意 出现 18456 错误消息也可能是由于其他原因。 有关这些原因和潜在解决方法的其他信息,请参阅 MSSQLSERVER_18456。 要传输登录名,请根据具体情况采用下列方法之一。 方法 1:在服务器 B) (目标SQL Server计算机上重置密码。 要解决此问题,请在 SQL Server 计算机中重置密码,然后为登录名编写脚本。 注意 重置密码时,将使用密码哈希算法。 方法 2:使用源服务器 A) 上生成的脚本将登录名和密码 ( (服务器 B) 传输到目标服务器。 创建存储过程有助于生成必要的脚本以传输登录名及其密码。 为此,请使用 SQL Server Management Studio (SSMS) 或任何其他客户端工具连接到服务器 A,并运行以下脚本: USE [master] GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimal GO CREATE PROCEDURE [dbo].[sp_hexadecimal] ( @binvalue varbinary(256), @hexvalue varchar (514) OUTPUT ) AS BEGIN DECLARE @charvalue varchar (514) DECLARE @i int DECLARE @length int DECLARE @hexstring char(16) SELECT @charvalue = '0x' SELECT @i = 1 SELECT @length = DATALENGTH (@binvalue) SELECT @hexstring = '0123456789ABCDEF' WHILE (@i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |